package com.thingsgrid.device.entity;
import com.thingsgrid.physicalmodel.entity.PhysicalAttribute;
import com.thingsgrid.physicalmodel.entity.PhysicalEvent;
import com.thingsgrid.physicalmodel.entity.PhysicalServer;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.util.List;

/**
 * 实体类
 */


@Data
@Document(collection = "product")
public class Product implements Serializable {

    /**
     * 产品ID
     */
    @Field("product_id")
    private String productId;

    /**
     * 产品名称
     */
    @Field("product_name")
    private String productName;

    /**
     * 产品键
     */
    private String productKey;

    /**
     * 产品子设备
     */
    private String childList;

    /**
     * topicitem实体
     */
    private List<Topic> topicItems;

    /**
     *
     */
    private List<Topic> subscribeTopicItems;

    /**
     * 产品类型Id
     */
    @Field("product_type_id")
    private String productTypeId;

    /**
     * 产品类型
     */
    @Field("product_type")
    private String productType;
    /**
     * 节点类型
     */
    @Field("product_point_type")
    private Integer productPointType;

    /**
     * 是否接入网关
     */
    @Field("is_access_gateway")
    private Integer isAccessGateway;

    /**
     * 联网协议
     */
    @Field("network_protocol")
    private String networkProtocol;

    /**
     * 数据格式
     */
    @Field("data_format")
    private String dataFormat;

    /**
     * 产品描述
     */
    @Field("product_describe")
    private String productDescribe;

    /**
     * 产品属性
     */
    @Field("product_attribute")
    //private String productAttribute;
    private List<PhysicalAttribute> productAttribute;

    /**
     * 产品服务
     */
    @Field("product_service")
//	private String productService;
    private List<PhysicalServer> productService;
    /**
     * 产品事件
     */
    @Field("product_event")
    //private String productEvent;
    private List<PhysicalEvent> productEvent;

    /**
     * 发布状态
     */
    @Field("is_publish")
    private String isPublish;

    /**
     * Topic类
     */
    @Field("topic_class")
    private List<Topic> topicClass;

    /**
     * 订阅服务
     */
    @Field("subscription_service")
    private String subscriptionService;

    /**
     * 版本
     */
    @Field("version")
    private Integer version;

    /**
     * 创建人
     */
    @Field("create_author")
    private String createAuthor;

    /**
     * 创建部门
     */
    @Field("creating_departments")
    private String creatingDepartments;

    /**
     * 创建日期
     */
    @Field("create_time")
    private String createTime;

    /**
     * 默认图标
     */
    @Field("device_icon")
    private String deviceIcon;

    /**
     * 默认链路线粗
     */
    @Field("device_link_strong")
    private Integer deviceLinkStrong;
    /**
     * 默认链路颜色
     */
    @Field("device_link_color")
    private String deviceLinkColor;

    /**
     * 物模型id
     */
    private String physicalModelId;

    /**
     * 子设备数量
     */
    private long deviceCount;

}

